home *** CD-ROM | disk | FTP | other *** search
- ────────────────────────────────────
- High-speed Assembler ─ 68060 対応版
- HAS060.X version 3.09+87
-
- < ColdFire 命令一覧 >
-
- 1999/11/17
- M.Kamada
- ────────────────────────────────────
-
- ColdFire(ColdFire V2~V4 コア)で使える全命令と、そのオペレーションサ
- イズおよびアドレッシングモードをまとめてみました。68000 ファミリの命令表
- と比較することで、削除された命令やオペレーションサイズ、アドレッシングな
- どを知ることができます。
-
- このドキュメントの内容は保証できません。まだ手元の資料が不十分で実物も
- 見ていないので、間違いがあると思われます。また、この記事の内容について質
- 問されても答えられない場合があります。
-
-
-
- (99-02-10版)
-
- ━< アドレッシングモード >━━━━━━━━━━━━━━━━━━━━━━
-
- ColdFire(ColdFire V2~V4 コア)で使用できるアドレッシングモードは、以
- 下の通り。
-
- ┌───┬─────────────────────┐
- │ D │Dn │
- ├───┼─────────────────────┤
- │ A │An │
- ├───┼─────────────────────┤
- │ M │(An) │
- ├───┼─────────────────────┤
- │ + │(An)+ │
- ├───┼─────────────────────┤
- │ - │-(An) │
- ├───┼─────────────────────┤
- │ W │(d16,An) │
- ├───┼─────────────────────┤
- │ X │(d8,An,Xi.L) │
- │ │(d8,An,Xi.L*2) │
- │ │(d8,An,Xi.L*4) │
- ├───┼─────────────────────┤
- │ Z │(xxx).W │
- │ │(xxx).L │
- ├───┼─────────────────────┤
- │ P │(d16,PC) │
- │ │(d8,PC,Xi.L) │
- │ │(d8,PC,Xi.L*2) │
- │ │(d8,PC,Xi.L*4) │
- ├───┼─────────────────────┤
- │ I │#<data> │
- └───┴─────────────────────┘
-
- メモ:
- インデックスレジスタはロングワードサイズに限る。
- スケールファクタは 4 倍までで、8 倍は不可。
- フルフォーマットのアドレッシングは不可。
- SP(A7)は常にロングワード境界にアラインメントされる。
-
-
-
- ━< 制御レジスタ >━━━━━━━━━━━━━━━━━━━━━━━━━━
-
- ColdFire(ColdFire V2~V4 コア)で使用できる制御レジスタは、以下の通り。
-
- ┌──┬────┬──┬─────────────────┐
- │コード│表記 │バー │ 内容 │
- │ │ │ション │ │
- ├──┼────┼──┼─────────────────┤
- │$002│CACR │234 │Cache Control Register │
- │$003│TCR │2-- │Transration Control Register │
- │$004│ACR0 │234 │Access Control Register 0 │
- │$005│ACR1 │234 │Access Control Register 1 │
- │$006│ACR2 │2-- │Access Control Register 2 │
- │$007│ACR3 │2-- │Access Control Register 3 │
- │$08n│Rn │234 │* MOVE to Rn │
- │$18n│Rn │234 │* MOVE from Rn │
- │$801│VBR │234 │Vector Base Register │
- │$80E│SR │2-- │* Status Register │
- │$80F│PC │-34 │Program Counter │
- │$C00│ROMBAR │234 │ROM Base Address Register │
- │$C04│RAMBAR │-34 │SRAM Base Address Register │
- │$C04│RAMBAR0 │2-- │RAM Base Address Register 0 │
- │$C05│RAMBAR1 │2-- │RAM Base Address Register 1 │
- │$C0F│MBAR │234 │Module Base Address Register │
- └──┴────┴──┴─────────────────┘
-
- メモ:
- * が付いているものは DEBUG インタフェイスからのアクセ
- スに限る(MOVEC ではアクセスできない)。
- TCR、ACR2、ACR3 は V2 でも使えないようだ。
-
-
-
- ━< ColdFire の全命令 >━━━━━━━━━━━━━━━━━━━━━━━
-
- ColdFire(ColdFire V2~V4 コア)の全命令の一覧。
-
- ┌───────────────────┬──┬─────┐
- │ 命令 │バー │アドレッシ│
- │ │ション │ングモード│
- ├───────────────────┼──┼─────┤
- │ADD.L <ea>,Dx │234 │DAM+-WXZPI│
- │ADD.L Dy,<ea> │234 │ M+-WXZ │
- │ADDA.L <ea>,Ax │234 │DAM+-WXZPI│
- │ADDI.L #<data>,Dx │234 │D │
- │ADDQ.L #<data>,<ea> │234 │DAM+-WXZ │
- │ADDX.L Dy,Dx │234 │ │
- │AND.L <ea>,Dx │234 │D M+-WXZPI│
- │AND.L Dy,<ea> │234 │ M+-WXZ │
- │ANDI.L #<data>,Dx │234 │D │
- │ASL.L #<data>,Dx │234 │ │
- │ASL.L Dy,Dx │234 │ │
- │ASR.L #<data>,Dn │234 │ │
- │ASR.L Dy,Dx │234 │ │
- │Bcc.L <label> │--4 │ │
- │Bcc.S <label> │234 │ │
- │Bcc.W <label> │234 │ │
- │BCHG.B #<data>,<ea> │234 │ M+-W │
- │BCHG.B Dy,<ea> │234 │ M+-WXZ │
- │BCHG.L #<data>,Dx │234 │D │
- │BCHG.L Dy,Dx │234 │D │
- │BCLR.B #<data>,<ea> │234 │ M+-W │
- │BCLR.B Dy,(d8,Ax,Xi) │-34 │ X │
- │BCLR.B Dy,<ea> │234 │ M+-W Z │
- │BCLR.L #<data>,Dx │234 │D │
- │BCLR.L Dy,Dx │234 │D │
- │BRA.L <label> │--4 │ │
- │BRA.S <label> │234 │ │
- │BRA.W <label> │234 │ │
- │BSET.B #<data>,<ea> │234 │ M+-W │
- │BSET.B Dy,(d8,Ax,Xi) │-34 │ X │
- │BSET.B Dy,<ea> │234 │ M+-W Z │
- │BSET.L #<data>,Dx │234 │D │
- │BSET.L Dy,Dx │234 │D │
- │BSR.L <label> │--4 │ │
- │BSR.S <label> │234 │ │
- │BSR.W <label> │234 │ │
- │BTST.B #<data>,<ea> │234 │ M+-W │
- │BTST.B Dy,<ea> │234 │ M+-WXZPI│
- │BTST.L #<data>,Dx │234 │D │
- │BTST.L Dy,Dx │234 │D │
- │CLR.B <ea> │234 │D M+-WXZ │
- │CLR.L <ea> │234 │D M+-WXZ │
- │CLR.W <ea> │234 │D M+-WXZ │
- │CMP.B <ea>,Dx │--4 │DAM+-WXZPI│
- │CMP.L <ea>,Dx │234 │DAM+-WXZPI│
- │CMP.W <ea>,Dx │--4 │DAM+-WXZPI│
- │CMPA.L <ea>,Ax │234 │DAM+-WXZPI│
- │CMPA.W <ea>,Ax │--4 │DAM+-WXZPI│
- │CMPI.B #<data>,Dx │--4 │D │
- │CMPI.L #<data>,Dx │234 │D │
- │CMPI.W #<data>,Dx │--4 │D │
- │CPUSH (Ax) │-34 │ │
- │DIVS.L <ea>,Dx │-34 │D M+-W │
- │DIVS.W <ea>,Dx │-34 │D M+-WXZPI│
- │DIVU.L <ea>,Dx │-34 │D M+-W │
- │DIVU.W <ea>,Dx │-34 │D M+-WXZPI│
- │EOR.L Dy,<ea> │234 │D M+-WXZ │
- │EORI.L #<data>,Dx │234 │D │
- │EXT.L Dx │234 │ │
- │EXT.W Dx │234 │ │
- │EXTB.L Dx │234 │ │
- │HALT │234 │ │
- │ILLEGAL │234 │ │
- │JMP <ea> │234 │ M WXZP │
- │JSR <ea> │234 │ M WXZP │
- │LEA.L <ea>,Ax │234 │ M WXZP │
- │LINK.W Ax,#<data> │234 │ │
- │LSL.L #<data>,Dx │234 │ │
- │LSL.L Dy,Dx │234 │ │
- │LSR.L #<data>,Dx │234 │ │
- │LSR.L Dy,Dx │234 │ │
- │MAC.wl Ry.ul,Rx.ul │-34 │ │
- │MAC.wl Ry.ul,Rx.ul,<shift> │-34 │ │
- │MACL.wl Ry.ul,Rx.ul,<ea>,Rw │-34 │ M+-W │
- │MACL.wl Ry.ul,Rx.ul,<shift>,<ea>&,Rw │-34 │ M+-W │
- │MACL.wl Ry.ul,Rx.ul,<shift>,<ea>,Rw │-34 │ M+-W │
- │MOV3Q.L #<data>,<ea> │--4 │DAM+-WXZ │
- │MOVE.bw #<data>,(d16,Ax) │--4 │ W │
- │MOVE.bwl #<data>,<ea> │234 │D M+- │
- │MOVE.bwl (Ay)+,<ea> │234 │D M+-WXZ │
- │MOVE.bwl (Ay),<ea> │234 │D M+-WXZ │
- │MOVE.bwl (d16,Ay),<ea> │234 │D M+-W │
- │MOVE.bwl (d16,PC),<ea> │234 │D M+-W │
- │MOVE.bwl (d8,Ay,Xi),(d16,Ax) │--4 │ W │
- │MOVE.bwl (d8,Ay,Xi),<ea> │234 │D M+- │
- │MOVE.bwl (d8,PC,Xi),(d16,Ax) │--4 │ W │
- │MOVE.bwl (d8,PC,Xi),<ea> │234 │D M+- │
- │MOVE.bwl (xxx).wl,(d16,Ax) │--4 │ W │
- │MOVE.bwl (xxx).wl,<ea> │234 │D M+- │
- │MOVE.bwl -(Ay),<ea> │234 │D M+-WXZ │
- │MOVE.bwl Dy,<ea> │234 │D M+-WXZ │
- │MOVE.L <ea>,ACC │-34 │DA I│
- │MOVE.L <ea>,MACSR │-34 │DA I│
- │MOVE.L <ea>,MASK │-34 │DA I│
- │MOVE.L ACC,Rx │-34 │ │
- │MOVE.L MACSR,CCR │-34 │ │
- │MOVE.L MACSR,Rx │-34 │ │
- │MOVE.L MASK,Rx │-34 │ │
- │MOVE.W <ea>,CCR │234 │D I│
- │MOVE.W <ea>,SR │234 │D I│
- │MOVE.W CCR,Dx │234 │D │
- │MOVE.W SR,Dx │234 │D │
- │MOVE.wl Ay,<ea> │234 │D M+-WXZ │
- │MOVEA.wl <ea>,Ax │234 │D M+-WXZPI│
- │MOVEC.L Ry,Rc │234 │ │
- │MOVEM.L <ea>,<list> │234 │ M W │
- │MOVEM.L <list>,<ea> │234 │ M W │
- │MOVEQ.L #<data>,Dx │234 │ │
- │MSAC.wl Ry.ul,Rx.ul │234 │ │
- │MSAC.wl Ry.ul,Rx.ul,<shift> │234 │ │
- │MSACL.wl Ry.ul,Rx.ul,<ea>,Rw │234 │ M+-W │
- │MSACL.wl Ry.ul,Rx.ul,<shift>,<ea>&,Rw │234 │ M+-W │
- │MSACL.wl Ry.ul,Rx.ul,<shift>,<ea>,Rw │234 │ M+-W │
- │MULS.L <ea>,Dx │234 │D M+-W │
- │MULS.W <ea>,Dx │234 │D M+-WXZPI│
- │MULU.L <ea>,Dx │234 │D M+-W │
- │MULU.W <ea>,Dx │234 │D M+-WXZPI│
- │MVS.B <ea>,Dx │--4 │DAM+-WXZPI│?Ay
- │MVS.W <ea>,Dx │--4 │DAM+-WXZPI│
- │MVU.B <ea>,Dx │--4 │DAM+-WXZPI│?Ay
- │MVU.W <ea>,Dx │--4 │DAM+-WXZPI│
- │NEG.L Dx │234 │D │
- │NEGX.L Dx │234 │D │
- │NOP │234 │ │
- │NOT.L Dx │234 │D │
- │OR.L <ea>,Dx │234 │D M+-WXZPI│
- │OR.L Dy,<ea> │234 │ M+-WXZ │
- │ORI.L #<data>,Dx │234 │D │
- │PEA.L <ea> │234 │ M WXZP │
- │PULSE │234 │ │
- │REMS.L <ea>,Dx │-34 │D M+-W │
- │REMU.L <ea>,Dx │-34 │D M+-W │
- │RTE │234 │ │
- │RTS │234 │ │
- │SATS.L Dx │--4 │D │
- │Scc.B Dx │234 │D │
- │STOP #<data> │234 │ │
- │SUB.L <ea>,Dx │234 │DAM+-WXZPI│
- │SUB.L Dy,<ea> │234 │ M+-WXZ │
- │SUBA.L <ea>,Ax │234 │DAM+-WXZPI│
- │SUBI.L #<data>,Dx │234 │D │
- │SUBQ.L #<data>,<ea> │234 │DAM+-WXZ │
- │SUBX.L Dy,Dx │234 │ │
- │SWAP.W Dx │234 │ │
- │TAS.B <ea> │--4 │ M+-WXZ │
- │TRAP #<vector> │234 │ │
- │TRAPF │234 │ │
- │TRAPF.L #<data> │234 │ │
- │TRAPF.W #<data> │234 │ │
- │TST.B <ea> │234 │D M+-WXZPI│
- │TST.L <ea> │234 │DAM+-WXZPI│
- │TST.W <ea> │234 │DAM+-WXZPI│
- │UNLK Ax │234 │ │
- │WDDATA.bwl <ea> │234 │ M+-WXZ │
- │WDEBUG.L <ea> │234 │ M W │
- └───────────────────┴──┴─────┘
-
- メモ:
- 整数演算命令の多くがロングワードサイズに限定された。
- DBRA やローテートなどの基本的な命令も一部削除された。
- アドレッシングモードが Dn のみに限定された命令がある。
- 積和演算命令(MAC)が追加された。
-
-
-
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
-
- (EOF)
-